package com.bzyd.ss;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;

/**
 * Spring Security: 默认环境中，拦截所有请求，要求必须认证（登录）后才能访问
 * 默认环境中，用户是user，每次启动启动的时候，动态生成一个长度128字节的密码，在控制台输出
 * 默认环境中，提供登录页面的请求地址是：/login，请求方式是：GET
 * 默认环境中，处理登录请求的地址是：/login，请求方式是：POST
 *
 * @EnableGlobalMethodSecurity - 开启Spring Security注解扫描，使权限注解生效
 * 默认扫描当前类所在包及其所有子包中的Security注解
 * 在部分版本中，只要声明注解，所有的属性自动赋值为true
 * 大多数版本中，注解的属性默认值都是false
 *   securedEnabled - 开启 @Secured 注解扫描
 *   prePostEnabled - 开启 @PreAuthorize、@PostAuthorize注解扫描
 */
@SpringBootApplication(scanBasePackages = {"com.bzyd.ss.*"})
@MapperScan(basePackages = {"com.bzyd.ss.mapper"})
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class GeneralApplication {

    public static void main(String[] args) {
        SpringApplication.run(GeneralApplication.class, args);
    }
}
